1. Field of the Invention
The present invention relates to a method, system, and program for processing data packets in packet buffers.
2. Description of the Related Art
In a network environment, a network adaptor card on a host computer, such as an Ethernet card, Fibre Channel card, etc., will receive Input/Output (I/O) requests or responses to I/O requests initiated from the host. Often, the host computer operating system includes a device driver to communicate with the network adaptor and make buffers in the host computer memory available to the network adaptor. Data packets received at the network adaptor would be stored in an available allocated packet buffer. The host computer further includes a transport protocol driver to process the packets received by the network adaptor that are stored in the packet buffer, and access any I/O commands or data embedded in the packet. For instance, the transport protocol driver may implement the Transmission Control Protocol (TCP) and Internet Protocol (IP) to decode and access the payload data in the TCP/IP packets.
In the prior art, the packet buffers store the packets from the network adaptor, that are received from a remote network/physical media, until the transport protocol driver processes the packet and releases the packet buffers. The released packet buffers are then available to receive any further packets from the network adaptor. If there are no available packet buffers for packets received at the network adaptor, then the network adaptor would have to discard such packets. All this discarded or “dropped” packets will have to be retransmitted, which wastes network bandwidth and degrades network performance. The prior art addresses this problem by having the protocol driver copy data from packet buffers to some other host memory or storage to release packet buffers and make them available to the network adaptor if the number of available packet buffers falls below a certain minimum threshold.
Notwithstanding the prior art techniques for ensuring that packet buffers are available for packets received at the network adaptor, there is a continued need for improved techniques to process packets in packet buffers, especially as improvements in network bandwidth increases the rate at which packets are received at the network adaptor. To accommodate the increased rate at which packets are received at the network adaptor, techniques are needed to improve the rate at which the transport protocol adaptor process packets received at the network adaptor.